(1) Field of the Invention
The invention relates to a software architecture. More specifically, the invention relates to a software architecture which transparently provides compatibility with existing and future versions of an operating system.
(2) Related Art
In a typical system development cycle, a standard or specification for implementing a hardware innovation is established by one of the organizations such as IEEE to establish compatibility across the industry. Once the specification is established, there is a significant lag time before operating system producers release a new version of the operating system (O/S) providing support for the specified hardware innovation. During this lag time, the O/S vendor typically designs and documents an application programming interface (API) for the forthcoming O/S. The API is released to software vendors to give them a head start on programming compatible software. The API documentation sheds little or no light on the implementation of supported functions, but does let the software vendors know the expected types of inputs and outputs. Even after the API is released, many months of testing are still required to insure that all aspects of the operating system will function properly.
As a result of the substantial lag time and the cost of carrying inventory and/or upgrading systems employing a "quick fix," the manufacturer of components that contain the new hardware innovation tends to time the release of products containing that innovation with the release of the operating system supporting it. The net result is there is a long lag between the innovation and its availability to consumers.
While it is possible to develop an application and suitable API for the existing operating system in which the application provides the support for a particular hardware innovation, a new application is then required when the operating system upgrade is released. This also requires design and documentation of two APIs, one for the existing operating system and one for the future release. Since upgrading is never cost free, hardware vendors are hesitant to erode their margin by following this approach. Accordingly, this solution is not satisfactory.
Current examples of this lag to market include many Universal Serial Bus (USB) supported features. The USB is defined in the Universal Serial Bus Specification Version 1.0 (USB Spec). The USB Spec is generally supported in the current commercial release of the Windows operating system from Microsoft Corporation, code named Detroit. However, the USB enables many functions including, for example, control of the parameters for human interface devices (HIDs) from the host computer. To that end, the HID specification Version 1.0 (HID Spec) has been promulgated to standardize this host-based control of HIDs. Detroit does not support the HID Spec. Monitors are one important class of HID which are of particular interest to control from the host. Accordingly, the Monitor Class Specification Version 1.0 (Monitor Spec) has also been promulgated. Detroit also fails to provide support for the Monitor Spec.
The next generation of operating system from Microsoft, code named Memphis, will provide the support for both the HID Spec and the Monitor Spec. Unfortunately, it will be several months or longer before Memphis is widely available. While some software vendors have produced applications to support the HID Spec and Monitor Spec in conjunction with Detroit, hardware vendors are reluctant to support the protocols implemented in these applications which will necessitate the hardware vendors upgrading in response to the Memphis release. As noted above, such upgrades are never free and tend to significantly erode the margins of hardware vendors. As a result, monitors supporting the HID Spec and Monitor Spec are generally unavailable. Thus, consumers are denied access to a significant technological innovation while vendors await O/S support for the innovation.
In view of the foregoing, it would be desirable to be able to seamlessly and transparently provide support for various technological innovations in both an existing operating system and a future operating system, thereby speeding the availability of the innovation in the marketplace.